It can be desirable to update software and other sets of information on a computer system. There have been proposed different methods of updating software and other sets of information on a computer system, such as U.S. Pat. No. 5,919,247 and its progeny, and U.S. Pat. No. 5,581,764 and its progeny. Conventional updating techniques involve identifying to a server the existing files on the computer system being updated, receiving files to use to update the computer system, updating the computer system using the files received, and verifying that the update has been correctly installed.
Conventional computer systems contain large amounts of random access memory (“RAM”) and large amounts of disk storage. The systems described above update files on disk using large amounts of RAM to hold the data structures used to identify the file structure, and optionally the registry structure, of the system before the update, and the proposed or actual file and/or registry structure of the computer system after the system is updated.
However, these systems are not designed to update devices with limited facilities. For example, some devices execute their operating systems or application programs directly from a nonvolatile storage, such as a ROM, flash memory or other similar device, without loading it into RAM. Although such operating systems or application programs may use RAM for data structures, they do not require the program object code to be first loaded into RAM prior to execution. Because of this capability, such devices have a limited amount of RAM, and the data structures used by conventional updating arrangements would either exceed the available RAM or use more than would be desirable, occupying too much of it to allow the operating system and any of the various application programs to operate without noticeable degradation. Such devices may include conventional mobile telephones, personal digital assistants, cameras, and the like.
What is needed is a system and method that can update computer systems that execute directly from nonvolatile storage an operating system, one or more applications, or both, and that can update files using an amount of RAM that is smaller than the data structures stored in RAM by conventional updating systems.